Element.implement({
    /*
     section: Propiedades, Metodos y Eventos Adicionales.
     Method: setPosition
     Setter de la posicion de un elemento.
     Argumentos:
     options - vector de coordenadas asociativo {x: valorX, y: valorY}.
     Metodos Relacionados:
     <Element.getPosition>
     */
    setPosition: function(options){
        this.setStyles({
            'left': options.x,
            'top': options.y
        });
    }
});

/*
 * evento randomize para arrays. Desordena todos sus elementos.
 */
Array.prototype.randomize = function () {
	// Array temporal, copia del original.
	var $arrTmp = new Array (this.length);
	var $arrTmpIndRnd = new Array (this.length);
	var $arrIndRnd = new Array (this.length);

	for (var $i = 0; $i < $arrTmpIndRnd.length; $i++) $arrTmpIndRnd[$i]=$i;
	$arrTmp = this.copy ();

	// Quitar y poner (los grosos le dice 'Pick and Drop')
	for (var i = 0; $arrTmp.length; i ++) {
		var rndNum = $random (0, ($arrTmp.length -1));
		this[i] = $arrTmp[rndNum];
		$arrIndRnd[i] = $arrTmpIndRnd[rndNum];
		
		$arrTmp.splice (rndNum, 1);
		$arrTmpIndRnd.splice (rndNum, 1);
	};
	return $arrIndRnd;			
}

// Variable de variable
String.prototype.toVar = function (value) {
window[this]=value || null;
return null;
}
